package com.ruangong.GitClient.GiteeAPI;

import android.annotation.SuppressLint;
import android.os.Parcel;
import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import com.google.gson.reflect.TypeToken;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.jetbrains.annotations.NotNull;

import java.lang.reflect.Type;
import java.util.List;

@SuppressLint("ParcelCreator")
public class GiteeRepository implements Parcelable {
    /*
    {
        "id": 30162297,
        "full_name": "nss-lab/914-4",
        "human_name": "西安电子科技大学-常曌/914-4",
        "url": "https://gitee.com/api/v5/repos/nss-lab/914-4",
        "namespace": {
            "id": 10262904,
            "type": "enterprise",
            "name": "西安电子科技大学-常曌",
            "path": "nss-lab",
            "html_url": "https://gitee.com/nss-lab"
        },
        "path": "914-4",
        "name": "914-4",
        "owner": {
            "id": 11377878,
            "login": "zhao-chang-cs",
            "name": "常曌",
            "avatar_url": "https://gitee.com/assets/no_portrait.png",
            "url": "https://gitee.com/api/v5/users/zhao-chang-cs",
            "html_url": "https://gitee.com/zhao-chang-cs",
            "remark": "",
            "followers_url": "https://gitee.com/api/v5/users/zhao-chang-cs/followers",
            "following_url": "https://gitee.com/api/v5/users/zhao-chang-cs/following_url{/other_user}",
            "gists_url": "https://gitee.com/api/v5/users/zhao-chang-cs/gists{/gist_id}",
            "starred_url": "https://gitee.com/api/v5/users/zhao-chang-cs/starred{/owner}{/repo}",
            "subscriptions_url": "https://gitee.com/api/v5/users/zhao-chang-cs/subscriptions",
            "organizations_url": "https://gitee.com/api/v5/users/zhao-chang-cs/orgs",
            "repos_url": "https://gitee.com/api/v5/users/zhao-chang-cs/repos",
            "events_url": "https://gitee.com/api/v5/users/zhao-chang-cs/events{/privacy}",
            "received_events_url": "https://gitee.com/api/v5/users/zhao-chang-cs/received_events",
            "type": "User"
        },
        "assigner": {
            "id": 11432479,
            "login": "SilverXQ",
            "name": "Silver",
            "avatar_url": "https://gitee.com/assets/no_portrait.png",
            "url": "https://gitee.com/api/v5/users/SilverXQ",
            "html_url": "https://gitee.com/SilverXQ",
            "remark": "",
            "followers_url": "https://gitee.com/api/v5/users/SilverXQ/followers",
            "following_url": "https://gitee.com/api/v5/users/SilverXQ/following_url{/other_user}",
            "gists_url": "https://gitee.com/api/v5/users/SilverXQ/gists{/gist_id}",
            "starred_url": "https://gitee.com/api/v5/users/SilverXQ/starred{/owner}{/repo}",
            "subscriptions_url": "https://gitee.com/api/v5/users/SilverXQ/subscriptions",
            "organizations_url": "https://gitee.com/api/v5/users/SilverXQ/orgs",
            "repos_url": "https://gitee.com/api/v5/users/SilverXQ/repos",
            "events_url": "https://gitee.com/api/v5/users/SilverXQ/events{/privacy}",
            "received_events_url": "https://gitee.com/api/v5/users/SilverXQ/received_events",
            "type": "User"
        },
        "description": "",
        "private": true,
        "public": false,
        "internal": false,
        "fork": false,
        "html_url": "https://gitee.com/nss-lab/914-4.git",
        "ssh_url": "git@gitee.com:nss-lab/914-4.git",
        "forks_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/forks",
        "keys_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/keys{/key_id}",
        "collaborators_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/collaborators{/collaborator}",
        "hooks_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/hooks",
        "branches_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/branches{/branch}",
        "tags_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/tags",
        "blobs_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/blobs{/sha}",
        "stargazers_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/stargazers",
        "contributors_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/contributors",
        "commits_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/commits{/sha}",
        "comments_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/comments{/number}",
        "issue_comment_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/issues/comments{/number}",
        "issues_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/issues{/number}",
        "pulls_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/pulls{/number}",
        "milestones_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/milestones{/number}",
        "notifications_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/notifications{?since,all,participating}",
        "labels_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/labels{/name}",
        "releases_url": "https://gitee.com/api/v5/repos/nss-lab/914-4/releases{/id}",
        "recommend": false,
        "gvp": false,
        "homepage": null,
        "language": "Python",
        "forks_count": 0,
        "stargazers_count": 0,
        "watchers_count": 4,
        "default_branch": "master",
        "open_issues_count": 0,
        "has_issues": true,
        "has_wiki": true,
        "issue_comment": false,
        "can_comment": true,
        "pull_requests_enabled": true,
        "has_page": false,
        "license": null,
        "outsourced": false,
        "project_creator": "SilverXQ",
        "members": [
            "healer_mh",
            "auroralky",
            "maxmaxminmin",
            "SilverXQ"
        ],
        "pushed_at": "2023-08-02T22:52:25+08:00",
        "created_at": "2023-07-14T13:46:36+08:00",
        "updated_at": "2023-08-02T22:52:25+08:00",
        "parent": null,
        "paas": null,
        "stared": false,
        "watched": true,
        "permission": {
            "pull": true,
            "push": true,
            "admin": true
        },
        "relation": "master",
        "assignees_number": 1,
        "testers_number": 1,
        "assignee": [
            {
                "id": 11432479,
                "login": "SilverXQ",
                "name": "Silver",
                "avatar_url": "https://gitee.com/assets/no_portrait.png",
                "url": "https://gitee.com/api/v5/users/SilverXQ",
                "html_url": "https://gitee.com/SilverXQ",
                "remark": "",
                "followers_url": "https://gitee.com/api/v5/users/SilverXQ/followers",
                "following_url": "https://gitee.com/api/v5/users/SilverXQ/following_url{/other_user}",
                "gists_url": "https://gitee.com/api/v5/users/SilverXQ/gists{/gist_id}",
                "starred_url": "https://gitee.com/api/v5/users/SilverXQ/starred{/owner}{/repo}",
                "subscriptions_url": "https://gitee.com/api/v5/users/SilverXQ/subscriptions",
                "organizations_url": "https://gitee.com/api/v5/users/SilverXQ/orgs",
                "repos_url": "https://gitee.com/api/v5/users/SilverXQ/repos",
                "events_url": "https://gitee.com/api/v5/users/SilverXQ/events{/privacy}",
                "received_events_url": "https://gitee.com/api/v5/users/SilverXQ/received_events",
                "type": "User"
            }
        ],
        "testers": [
            {
                "id": 11432479,
                "login": "SilverXQ",
                "name": "Silver",
                "avatar_url": "https://gitee.com/assets/no_portrait.png",
                "url": "https://gitee.com/api/v5/users/SilverXQ",
                "html_url": "https://gitee.com/SilverXQ",
                "remark": "",
                "followers_url": "https://gitee.com/api/v5/users/SilverXQ/followers",
                "following_url": "https://gitee.com/api/v5/users/SilverXQ/following_url{/other_user}",
                "gists_url": "https://gitee.com/api/v5/users/SilverXQ/gists{/gist_id}",
                "starred_url": "https://gitee.com/api/v5/users/SilverXQ/starred{/owner}{/repo}",
                "subscriptions_url": "https://gitee.com/api/v5/users/SilverXQ/subscriptions",
                "organizations_url": "https://gitee.com/api/v5/users/SilverXQ/orgs",
                "repos_url": "https://gitee.com/api/v5/users/SilverXQ/repos",
                "events_url": "https://gitee.com/api/v5/users/SilverXQ/events{/privacy}",
                "received_events_url": "https://gitee.com/api/v5/users/SilverXQ/received_events",
                "type": "User"
            }
        ],
        "status": "开始",
        "programs": [

        ],
        "enterprise": {
            "id": 10262904,
            "type": "enterprise",
            "name": "西安电子科技大学-常曌",
            "path": "nss-lab",
            "html_url": "https://gitee.com/nss-lab"
        },
        "project_labels": [

        ],
        "issue_template_source": "enterprise"
    }
     */

    private int id;
    private String full_name;
    private String human_name;
    private String url;
    private Namespace namespace;
    private String path;
    private String name;
    private Owner owner;
    private Assigner assigner;
    private String description;
    @SerializedName("private")
    private boolean isPrivate;
    @SerializedName("public")
    private boolean isPublic;
    private boolean internal;
    private boolean fork;
    private String html_url;
    private String ssh_url;
    private String forks_url;
    private String keys_url;
    private String collaborators_url;
    private String hooks_url;
    private String branches_url;
    private String tags_url;
    private String blobs_url;
    private String stargazers_url;
    private String contributors_url;
    private String commits_url;
    private String comments_url;
    private String issue_comment_url;
    private String issues_url;
    private String pulls_url;
    private String milestones_url;
    private String notifications_url;
    private String labels_url;
    private String releases_url;
    private boolean recommend;
    private boolean gvp;
    private String homepage;
    private String language;
    private int forks_count;
    private int stargazers_count;
    private int watchers_count;
    private String default_branch;
    private int open_issues_count;
    private boolean has_issues;
    private boolean has_wiki;
    private boolean issue_comment;
    private boolean can_comment;
    private boolean pull_requests_enabled;
    private boolean has_page;
    private String license;
    private boolean outsourced;
    private String project_creator;
    private List<String> members;
    private String pushed_at;
    private String created_at;
    private String updated_at;
    private Parent parent;
    private Paas paas;
    private boolean stared;
    private boolean watched;
    private Permission permission;
    private String relation;
    private int assignees_number;
    private int testers_number;
    private List<Assignee> assignee;
    private List<Tester> testers;
    private String status;
    private List<Program> programs;
    private Enterprise enterprise;
    private List<ProjectLabel> project_labels;
    private String issue_template_source;

    public static GiteeRepository fromJson(String json) {
        return new Gson().fromJson(json, GiteeRepository.class);
    }

    public GiteeRepository() {

    }

    protected GiteeRepository(Parcel in) {
        name = in.readString();
        description = in.readString();
        url=in.readString();
    }

    public static final Creator<GiteeRepository> CREATOR = new Creator<GiteeRepository>() {
        @Override
        public GiteeRepository createFromParcel(Parcel in) {
            return new GiteeRepository(in);
        }

        @Override
        public GiteeRepository[] newArray(int size) {
            return new GiteeRepository[size];
        }
    };

    public GiteeRepository(int id, String full_name, String human_name, String url, Namespace namespace, String path, String name, Owner owner, Assigner assigner, String description, boolean isPrivate, boolean isPublic, boolean isInternal, boolean isFork, String html_url, String ssh_url, String forks_url, String keys_url, String collaborators_url, String hooks_url, String branches_url, String tags_url, String blobs_url, String stargazers_url, String contributors_url, String commits_url, String comments_url, String issue_comment_url, String issues_url, String pulls_url, String milestones_url, String notifications_url, String labels_url, String releases_url, boolean recommend, boolean gvp, String homepage, String language, int forks_count, int stargazers_count, int watchers_count, String default_branch, int open_issues_count, boolean has_issues, boolean has_wiki, boolean issue_comment, boolean can_comment, boolean pull_requests_enabled, boolean has_page, String license, boolean outsourced, String project_creator, List<String> members, String pushed_at, String created_at, String updated_at, Parent parent, Paas paas, boolean stared, boolean watched, Permission permission, String relation, int assignees_number, int testers_number, List<Assignee> assignee, List<Tester> testers, String status, List<Program> programs, Enterprise enterprise, List<ProjectLabel> project_labels, String issue_template_source) {
        this.id = id;
        this.full_name = full_name;
        this.human_name = human_name;
        this.url = url;
        this.namespace = namespace;
        this.path = path;
        this.name = name;
        this.owner = owner;
        this.assigner = assigner;
        this.description = description;
        this.isPrivate = isPrivate;
        this.isPublic = isPublic;
        this.internal = internal;
        this.fork = fork;
        this.html_url = html_url;
        this.ssh_url = ssh_url;
        this.forks_url = forks_url;
        this.keys_url = keys_url;
        this.collaborators_url = collaborators_url;
        this.hooks_url = hooks_url;
        this.branches_url = branches_url;
        this.tags_url = tags_url;
        this.blobs_url = blobs_url;
        this.stargazers_url = stargazers_url;
        this.contributors_url = contributors_url;
        this.commits_url = commits_url;
        this.comments_url = comments_url;
        this.issue_comment_url = issue_comment_url;
        this.issues_url = issues_url;
        this.pulls_url = pulls_url;
        this.milestones_url = milestones_url;
        this.notifications_url = notifications_url;
        this.labels_url = labels_url;
        this.releases_url = releases_url;
        this.recommend = recommend;
        this.gvp = gvp;
        this.homepage = homepage;
        this.language = language;
        this.forks_count = forks_count;
        this.stargazers_count = stargazers_count;
        this.watchers_count = watchers_count;
        this.default_branch = default_branch;
        this.open_issues_count = open_issues_count;
        this.has_issues = has_issues;
        this.has_wiki = has_wiki;
        this.issue_comment = issue_comment;
        this.can_comment = can_comment;
        this.pull_requests_enabled = pull_requests_enabled;
        this.has_page = has_page;
        this.license = license;
        this.outsourced = outsourced;
        this.project_creator = project_creator;
        this.members = members;
        this.pushed_at = pushed_at;
        this.created_at = created_at;
        this.updated_at = updated_at;
        this.parent = parent;
        this.paas = paas;
        this.stared = stared;
        this.watched = watched;
        this.permission = permission;
        this.relation = relation;
        this.assignees_number = assignees_number;
        this.testers_number = testers_number;
        this.assignee = assignee;
        this.testers = testers;
        this.status = status;
        this.programs = programs;
        this.enterprise = enterprise;
        this.project_labels = project_labels;
        this.issue_template_source = issue_template_source;
    }

    public List<GiteeFile> getFiles() {
        String url = this.url + "/contents";



        Request request = new Request.Builder()
                .url(url)
                .header("Authorization", "token " + GiteeUser.accessToken)
                .build();

        try (Response response = GiteeUser.client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                assert response.body() != null;
                String jsonResponse = response.body().string();
                System.out.println(jsonResponse);
                Gson gson = new Gson();
                Type listType = new TypeToken<List<GiteeFile>>() {
                }.getType();
                return gson.fromJson(jsonResponse, listType);
            } else {
                System.err.println("Failed to fetch repository contents: " + response.message());
            }
        } catch (Exception e) {
            System.err.println("Error making HTTP request: " + e.getMessage());
        }
        return null;
    }

    public void showRepositoryInfo() {
        System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
        System.out.println("Repository Full_Name: " + full_name);
        System.out.println("Repository Human_Name: " + human_name);
        System.out.println("Repository Name: "+ name);
        System.out.println("-----------------------------------------------------------------------------------");
    }


    /**
     * 获取
     *
     * @return id
     */
    public int getId() {
        return id;
    }

    /**
     * 设置
     *
     * @param id id
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * 获取
     *
     * @return full_name
     */
    public String getFull_name() {
        return full_name;
    }

    /**
     * 设置
     *
     * @param full_name full_name
     */
    public void setFull_name(String full_name) {
        this.full_name = full_name;
    }

    /**
     * 获取
     *
     * @return human_name
     */
    public String getHuman_name() {
        return human_name;
    }

    /**
     * 设置
     *
     * @param human_name human_name
     */
    public void setHuman_name(String human_name) {
        this.human_name = human_name;
    }

    /**
     * 获取
     *
     * @return url
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置
     *
     * @param url url
     */
    public void setUrl(String url) {
        this.url = url;
    }

    /**
     * 获取
     *
     * @return namespace
     */
    public Namespace getNamespace() {
        return namespace;
    }

    /**
     * 设置
     *
     * @param namespace namespace
     */
    public void setNamespace(Namespace namespace) {
        this.namespace = namespace;
    }

    /**
     * 获取
     *
     * @return path
     */
    public String getPath() {
        return path;
    }

    /**
     * 设置
     *
     * @param path path
     */
    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 获取
     *
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     *
     * @param name name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     *
     * @return owner
     */
    public Owner getOwner() {
        return owner;
    }

    /**
     * 设置
     *
     * @param owner owner
     */
    public void setOwner(Owner owner) {
        this.owner = owner;
    }

    /**
     * 获取
     *
     * @return assigner
     */
    public Assigner getAssigner() {
        return assigner;
    }

    /**
     * 设置
     *
     * @param assigner assigner
     */
    public void setAssigner(Assigner assigner) {
        this.assigner = assigner;
    }

    /**
     * 获取
     *
     * @return description
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置
     *
     * @param description description
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 获取
     *
     * @return isPrivate
     */
    public boolean getPrivate() {
        return isPrivate;
    }

    /**
     * 设置
     *
     * @param isPrivate isPrivate
     */
    public void setPrivate(boolean isPrivate) {
        this.isPrivate = isPrivate;
    }

    /**
     * 获取
     *
     * @return isPublic
     */
    public boolean getPublic() {
        return isPublic;
    }

    /**
     * 设置
     *
     * @param isPublic isPublic
     */
    public void setPublic(boolean isPublic) {
        this.isPublic = isPublic;
    }

    /**
     * 获取
     *
     * @return isInternal
     */
    public boolean getInternal() {
        return internal;
    }

    /**
     * 设置
     *
     * @param internal internal
     */
    public void setInternal(boolean internal) {
        this.internal = internal;
    }

    /**
     * 获取
     *
     * @return isFork
     */
    public boolean isIsFork() {
        return fork;
    }

    /**
     * 设置
     *
     * @param fork fork
     */
    public void setIsFork(boolean fork) {
        this.fork = fork;
    }

    /**
     * 获取
     *
     * @return html_url
     */
    public String getHtml_url() {
        return html_url;
    }

    /**
     * 设置
     *
     * @param html_url html_url
     */
    public void setHtml_url(String html_url) {
        this.html_url = html_url;
    }

    /**
     * 获取
     *
     * @return ssh_url
     */
    public String getSsh_url() {
        return ssh_url;
    }

    /**
     * 设置
     *
     * @param ssh_url ssh_url
     */
    public void setSsh_url(String ssh_url) {
        this.ssh_url = ssh_url;
    }

    /**
     * 获取
     *
     * @return forks_url
     */
    public String getForks_url() {
        return forks_url;
    }

    /**
     * 设置
     *
     * @param forks_url forks_url
     */
    public void setForks_url(String forks_url) {
        this.forks_url = forks_url;
    }

    /**
     * 获取
     *
     * @return keys_url
     */
    public String getKeys_url() {
        return keys_url;
    }

    /**
     * 设置
     *
     * @param keys_url keys_url
     */
    public void setKeys_url(String keys_url) {
        this.keys_url = keys_url;
    }

    /**
     * 获取
     *
     * @return collaborators_url
     */
    public String getCollaborators_url() {
        return collaborators_url;
    }

    /**
     * 设置
     *
     * @param collaborators_url collaborators_url
     */
    public void setCollaborators_url(String collaborators_url) {
        this.collaborators_url = collaborators_url;
    }

    /**
     * 获取
     *
     * @return hooks_url
     */
    public String getHooks_url() {
        return hooks_url;
    }

    /**
     * 设置
     *
     * @param hooks_url hooks_url
     */
    public void setHooks_url(String hooks_url) {
        this.hooks_url = hooks_url;
    }

    /**
     * 获取
     *
     * @return branches_url
     */
    public String getBranches_url() {
        return branches_url;
    }

    /**
     * 设置
     *
     * @param branches_url branches_url
     */
    public void setBranches_url(String branches_url) {
        this.branches_url = branches_url;
    }

    /**
     * 获取
     *
     * @return tags_url
     */
    public String getTags_url() {
        return tags_url;
    }

    /**
     * 设置
     *
     * @param tags_url tags_url
     */
    public void setTags_url(String tags_url) {
        this.tags_url = tags_url;
    }

    /**
     * 获取
     *
     * @return blobs_url
     */
    public String getBlobs_url() {
        return blobs_url;
    }

    /**
     * 设置
     *
     * @param blobs_url blobs_url
     */
    public void setBlobs_url(String blobs_url) {
        this.blobs_url = blobs_url;
    }

    /**
     * 获取
     *
     * @return stargazers_url
     */
    public String getStargazers_url() {
        return stargazers_url;
    }

    /**
     * 设置
     *
     * @param stargazers_url stargazers_url
     */
    public void setStargazers_url(String stargazers_url) {
        this.stargazers_url = stargazers_url;
    }

    /**
     * 获取
     *
     * @return contributors_url
     */
    public String getContributors_url() {
        return contributors_url;
    }

    /**
     * 设置
     *
     * @param contributors_url contributors_url
     */
    public void setContributors_url(String contributors_url) {
        this.contributors_url = contributors_url;
    }

    /**
     * 获取
     *
     * @return commits_url
     */
    public String getCommits_url() {
        return commits_url;
    }

    /**
     * 设置
     *
     * @param commits_url commits_url
     */
    public void setCommits_url(String commits_url) {
        this.commits_url = commits_url;
    }

    /**
     * 获取
     *
     * @return comments_url
     */
    public String getComments_url() {
        return comments_url;
    }

    /**
     * 设置
     *
     * @param comments_url comments_url
     */
    public void setComments_url(String comments_url) {
        this.comments_url = comments_url;
    }

    /**
     * 获取
     *
     * @return issue_comment_url
     */
    public String getIssue_comment_url() {
        return issue_comment_url;
    }

    /**
     * 设置
     *
     * @param issue_comment_url issue_comment_url
     */
    public void setIssue_comment_url(String issue_comment_url) {
        this.issue_comment_url = issue_comment_url;
    }

    /**
     * 获取
     *
     * @return issues_url
     */
    public String getIssues_url() {
        return issues_url;
    }

    /**
     * 设置
     *
     * @param issues_url issues_url
     */
    public void setIssues_url(String issues_url) {
        this.issues_url = issues_url;
    }

    /**
     * 获取
     *
     * @return pulls_url
     */
    public String getPulls_url() {
        return pulls_url;
    }

    /**
     * 设置
     *
     * @param pulls_url pulls_url
     */
    public void setPulls_url(String pulls_url) {
        this.pulls_url = pulls_url;
    }

    /**
     * 获取
     *
     * @return milestones_url
     */
    public String getMilestones_url() {
        return milestones_url;
    }

    /**
     * 设置
     *
     * @param milestones_url milestones_url
     */
    public void setMilestones_url(String milestones_url) {
        this.milestones_url = milestones_url;
    }

    /**
     * 获取
     *
     * @return notifications_url
     */
    public String getNotifications_url() {
        return notifications_url;
    }

    /**
     * 设置
     *
     * @param notifications_url notifications_url
     */
    public void setNotifications_url(String notifications_url) {
        this.notifications_url = notifications_url;
    }

    /**
     * 获取
     *
     * @return labels_url
     */
    public String getLabels_url() {
        return labels_url;
    }

    /**
     * 设置
     *
     * @param labels_url labels_url
     */
    public void setLabels_url(String labels_url) {
        this.labels_url = labels_url;
    }

    /**
     * 获取
     *
     * @return releases_url
     */
    public String getReleases_url() {
        return releases_url;
    }

    /**
     * 设置
     *
     * @param releases_url releases_url
     */
    public void setReleases_url(String releases_url) {
        this.releases_url = releases_url;
    }

    /**
     * 获取
     *
     * @return recommend
     */
    public boolean isRecommend() {
        return recommend;
    }

    /**
     * 设置
     *
     * @param recommend recommend
     */
    public void setRecommend(boolean recommend) {
        this.recommend = recommend;
    }

    /**
     * 获取
     *
     * @return gvp
     */
    public boolean isGvp() {
        return gvp;
    }

    /**
     * 设置
     *
     * @param gvp gvp
     */
    public void setGvp(boolean gvp) {
        this.gvp = gvp;
    }

    /**
     * 获取
     *
     * @return homepage
     */
    public String getHomepage() {
        return homepage;
    }

    /**
     * 设置
     *
     * @param homepage homepage
     */
    public void setHomepage(String homepage) {
        this.homepage = homepage;
    }

    /**
     * 获取
     *
     * @return language
     */
    public String getLanguage() {
        return language;
    }

    /**
     * 设置
     *
     * @param language language
     */
    public void setLanguage(String language) {
        this.language = language;
    }

    /**
     * 获取
     *
     * @return forks_count
     */
    public int getForks_count() {
        return forks_count;
    }

    /**
     * 设置
     *
     * @param forks_count forks_count
     */
    public void setForks_count(int forks_count) {
        this.forks_count = forks_count;
    }

    /**
     * 获取
     *
     * @return stargazers_count
     */
    public int getStargazers_count() {
        return stargazers_count;
    }

    /**
     * 设置
     *
     * @param stargazers_count stargazers_count
     */
    public void setStargazers_count(int stargazers_count) {
        this.stargazers_count = stargazers_count;
    }

    /**
     * 获取
     *
     * @return watchers_count
     */
    public int getWatchers_count() {
        return watchers_count;
    }

    /**
     * 设置
     *
     * @param watchers_count watchers_count
     */
    public void setWatchers_count(int watchers_count) {
        this.watchers_count = watchers_count;
    }

    /**
     * 获取
     *
     * @return default_branch
     */
    public String getDefault_branch() {
        return default_branch;
    }

    /**
     * 设置
     *
     * @param default_branch default_branch
     */
    public void setDefault_branch(String default_branch) {
        this.default_branch = default_branch;
    }

    /**
     * 获取
     *
     * @return open_issues_count
     */
    public int getOpen_issues_count() {
        return open_issues_count;
    }

    /**
     * 设置
     *
     * @param open_issues_count open_issues_count
     */
    public void setOpen_issues_count(int open_issues_count) {
        this.open_issues_count = open_issues_count;
    }

    /**
     * 获取
     *
     * @return has_issues
     */
    public boolean isHas_issues() {
        return has_issues;
    }

    /**
     * 设置
     *
     * @param has_issues has_issues
     */
    public void setHas_issues(boolean has_issues) {
        this.has_issues = has_issues;
    }

    /**
     * 获取
     *
     * @return has_wiki
     */
    public boolean isHas_wiki() {
        return has_wiki;
    }

    /**
     * 设置
     *
     * @param has_wiki has_wiki
     */
    public void setHas_wiki(boolean has_wiki) {
        this.has_wiki = has_wiki;
    }

    /**
     * 获取
     *
     * @return issue_comment
     */
    public boolean isIssue_comment() {
        return issue_comment;
    }

    /**
     * 设置
     *
     * @param issue_comment issue_comment
     */
    public void setIssue_comment(boolean issue_comment) {
        this.issue_comment = issue_comment;
    }

    /**
     * 获取
     *
     * @return can_comment
     */
    public boolean isCan_comment() {
        return can_comment;
    }

    /**
     * 设置
     *
     * @param can_comment can_comment
     */
    public void setCan_comment(boolean can_comment) {
        this.can_comment = can_comment;
    }

    /**
     * 获取
     *
     * @return pull_requests_enabled
     */
    public boolean isPull_requests_enabled() {
        return pull_requests_enabled;
    }

    /**
     * 设置
     *
     * @param pull_requests_enabled pull_requests_enabled
     */
    public void setPull_requests_enabled(boolean pull_requests_enabled) {
        this.pull_requests_enabled = pull_requests_enabled;
    }

    /**
     * 获取
     *
     * @return has_page
     */
    public boolean isHas_page() {
        return has_page;
    }

    /**
     * 设置
     *
     * @param has_page has_page
     */
    public void setHas_page(boolean has_page) {
        this.has_page = has_page;
    }

    /**
     * 获取
     *
     * @return license
     */
    public String getLicense() {
        return license;
    }

    /**
     * 设置
     *
     * @param license license
     */
    public void setLicense(String license) {
        this.license = license;
    }

    /**
     * 获取
     *
     * @return outsourced
     */
    public boolean isOutsourced() {
        return outsourced;
    }

    /**
     * 设置
     *
     * @param outsourced outsourced
     */
    public void setOutsourced(boolean outsourced) {
        this.outsourced = outsourced;
    }

    /**
     * 获取
     *
     * @return project_creator
     */
    public String getProject_creator() {
        return project_creator;
    }

    /**
     * 设置
     *
     * @param project_creator project_creator
     */
    public void setProject_creator(String project_creator) {
        this.project_creator = project_creator;
    }

    /**
     * 获取
     *
     * @return members
     */
    public List<String> getMembers() {
        return members;
    }

    /**
     * 设置
     *
     * @param members members
     */
    public void setMembers(List<String> members) {
        this.members = members;
    }

    /**
     * 获取
     *
     * @return pushed_at
     */
    public String getPushed_at() {
        return pushed_at;
    }

    /**
     * 设置
     *
     * @param pushed_at pushed_at
     */
    public void setPushed_at(String pushed_at) {
        this.pushed_at = pushed_at;
    }

    /**
     * 获取
     *
     * @return created_at
     */
    public String getCreated_at() {
        return created_at;
    }

    /**
     * 设置
     *
     * @param created_at created_at
     */
    public void setCreated_at(String created_at) {
        this.created_at = created_at;
    }

    /**
     * 获取
     *
     * @return updated_at
     */
    public String getUpdated_at() {
        return updated_at;
    }

    /**
     * 设置
     *
     * @param updated_at updated_at
     */
    public void setUpdated_at(String updated_at) {
        this.updated_at = updated_at;
    }

    /**
     * 获取
     *
     * @return parent
     */
    public Parent getParent() {
        return parent;
    }

    /**
     * 设置
     *
     * @param parent parent
     */
    public void setParent(Parent parent) {
        this.parent = parent;
    }

    /**
     * 获取
     *
     * @return paas
     */
    public Paas getPaas() {
        return paas;
    }

    /**
     * 设置
     *
     * @param paas paas
     */
    public void setPaas(Paas paas) {
        this.paas = paas;
    }

    /**
     * 获取
     *
     * @return stared
     */
    public boolean isStared() {
        return stared;
    }

    /**
     * 设置
     *
     * @param stared stared
     */
    public void setStared(boolean stared) {
        this.stared = stared;
    }

    /**
     * 获取
     *
     * @return watched
     */
    public boolean isWatched() {
        return watched;
    }

    /**
     * 设置
     *
     * @param watched watched
     */
    public void setWatched(boolean watched) {
        this.watched = watched;
    }

    /**
     * 获取
     *
     * @return permission
     */
    public Permission getPermission() {
        return permission;
    }

    /**
     * 设置
     *
     * @param permission permission
     */
    public void setPermission(Permission permission) {
        this.permission = permission;
    }

    /**
     * 获取
     *
     * @return relation
     */
    public String getRelation() {
        return relation;
    }

    /**
     * 设置
     *
     * @param relation relation
     */
    public void setRelation(String relation) {
        this.relation = relation;
    }

    /**
     * 获取
     *
     * @return assignees_number
     */
    public int getAssignees_number() {
        return assignees_number;
    }

    /**
     * 设置
     *
     * @param assignees_number assignees_number
     */
    public void setAssignees_number(int assignees_number) {
        this.assignees_number = assignees_number;
    }

    /**
     * 获取
     *
     * @return testers_number
     */
    public int getTesters_number() {
        return testers_number;
    }

    /**
     * 设置
     *
     * @param testers_number testers_number
     */
    public void setTesters_number(int testers_number) {
        this.testers_number = testers_number;
    }

    /**
     * 获取
     *
     * @return assignee
     */
    public List<Assignee> getAssignee() {
        return assignee;
    }

    /**
     * 设置
     *
     * @param assignee assignee
     */
    public void setAssignee(List<Assignee> assignee) {
        this.assignee = assignee;
    }

    /**
     * 获取
     *
     * @return testers
     */
    public List<Tester> getTesters() {
        return testers;
    }

    /**
     * 设置
     *
     * @param testers testers
     */
    public void setTesters(List<Tester> testers) {
        this.testers = testers;
    }

    /**
     * 获取
     *
     * @return status
     */
    public String getStatus() {
        return status;
    }

    /**
     * 设置
     *
     * @param status status
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 获取
     *
     * @return programs
     */
    public List<Program> getPrograms() {
        return programs;
    }

    /**
     * 设置
     *
     * @param programs programs
     */
    public void setPrograms(List<Program> programs) {
        this.programs = programs;
    }

    /**
     * 获取
     *
     * @return enterprise
     */
    public Enterprise getEnterprise() {
        return enterprise;
    }

    /**
     * 设置
     *
     * @param enterprise enterprise
     */
    public void setEnterprise(Enterprise enterprise) {
        this.enterprise = enterprise;
    }

    /**
     * 获取
     *
     * @return project_labels
     */
    public List<ProjectLabel> getProject_labels() {
        return project_labels;
    }

    /**
     * 设置
     *
     * @param project_labels project_labels
     */
    public void setProject_labels(List<ProjectLabel> project_labels) {
        this.project_labels = project_labels;
    }

    /**
     * 获取
     *
     * @return issue_template_source
     */
    public String getIssue_template_source() {
        return issue_template_source;
    }

    /**
     * 设置
     *
     * @param issue_template_source issue_template_source
     */
    public void setIssue_template_source(String issue_template_source) {
        this.issue_template_source = issue_template_source;
    }

    @NotNull
    public String toString() {
        return "GiteeRepository{id = " + id + ", full_name = " + full_name + ", human_name = " + human_name + ", url = " + url + ", namespace = " + namespace + ", path = " + path + ", name = " + name + ", owner = " + owner + ", assigner = " + assigner + ", description = " + description + ", isPrivate = " + isPrivate + ", isPublic = " + isPublic + ", isInternal = " + internal + ", isFork = " + fork + ", html_url = " + html_url + ", ssh_url = " + ssh_url + ", forks_url = " + forks_url + ", keys_url = " + keys_url + ", collaborators_url = " + collaborators_url + ", hooks_url = " + hooks_url + ", branches_url = " + branches_url + ", tags_url = " + tags_url + ", blobs_url = " + blobs_url + ", stargazers_url = " + stargazers_url + ", contributors_url = " + contributors_url + ", commits_url = " + commits_url + ", comments_url = " + comments_url + ", issue_comment_url = " + issue_comment_url + ", issues_url = " + issues_url + ", pulls_url = " + pulls_url + ", milestones_url = " + milestones_url + ", notifications_url = " + notifications_url + ", labels_url = " + labels_url + ", releases_url = " + releases_url + ", recommend = " + recommend + ", gvp = " + gvp + ", homepage = " + homepage + ", language = " + language + ", forks_count = " + forks_count + ", stargazers_count = " + stargazers_count + ", watchers_count = " + watchers_count + ", default_branch = " + default_branch + ", open_issues_count = " + open_issues_count + ", has_issues = " + has_issues + ", has_wiki = " + has_wiki + ", issue_comment = " + issue_comment + ", can_comment = " + can_comment + ", pull_requests_enabled = " + pull_requests_enabled + ", has_page = " + has_page + ", license = " + license + ", outsourced = " + outsourced + ", project_creator = " + project_creator + ", members = " + members + ", pushed_at = " + pushed_at + ", created_at = " + created_at + ", updated_at = " + updated_at + ", parent = " + parent + ", paas = " + paas + ", stared = " + stared + ", watched = " + watched + ", permission = " + permission + ", relation = " + relation + ", assignees_number = " + assignees_number + ", testers_number = " + testers_number + ", assignee = " + assignee + ", testers = " + testers + ", status = " + status + ", programs = " + programs + ", enterprise = " + enterprise + ", project_labels = " + project_labels + ", issue_template_source = " + issue_template_source + "}";
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(name);
        parcel.writeString(description);
        parcel.writeString(url);

        // 如果有其他成员变量，继续写入
    }


    public static class Namespace {
        private int id;
        private String type;
        private String name;
        private String path;
        private String html_url;

        public Namespace() {
        }

        public Namespace(int id, String type, String name, String path, String html_url) {
            this.id = id;
            this.type = type;
            this.name = name;
            this.path = path;
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type type
         */
        public void setType(String type) {
            this.type = type;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return path
         */
        public String getPath() {
            return path;
        }

        /**
         * 设置
         *
         * @param path path
         */
        public void setPath(String path) {
            this.path = path;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        @NotNull
        public String toString() {
            return "Namespace{id = " + id + ", type = " + type + ", name = " + name + ", path = " + path + ", html_url = " + html_url + "}";
        }
    }

    public static class Owner {
        private int id;
        private String login;
        private String name;
        private String avatar_url;
        private String url;
        private String html_url;
        private String remark;
        private String followers_url;
        private String following_url;
        private String gists_url;
        private String starred_url;
        private String subscriptions_url;
        private String organizations_url;
        private String repos_url;
        private String events_url;
        private String received_events_url;
        private String type;

        public Owner() {
        }

        public Owner(int id, String login, String name, String avatar_url, String url, String html_url, String remark, String followers_url, String following_url, String gists_url, String starred_url, String subscriptions_url, String organizations_url, String repos_url, String events_url, String received_events_url, String type) {
            this.id = id;
            this.login = login;
            this.name = name;
            this.avatar_url = avatar_url;
            this.url = url;
            this.html_url = html_url;
            this.remark = remark;
            this.followers_url = followers_url;
            this.following_url = following_url;
            this.gists_url = gists_url;
            this.starred_url = starred_url;
            this.subscriptions_url = subscriptions_url;
            this.organizations_url = organizations_url;
            this.repos_url = repos_url;
            this.events_url = events_url;
            this.received_events_url = received_events_url;
            this.type = type;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return login
         */
        public String getLogin() {
            return login;
        }

        /**
         * 设置
         *
         * @param login login
         */
        public void setLogin(String login) {
            this.login = login;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return avatar_url
         */
        public String getAvatar_url() {
            return avatar_url;
        }

        /**
         * 设置
         *
         * @param avatar_url avatar_url
         */
        public void setAvatar_url(String avatar_url) {
            this.avatar_url = avatar_url;
        }

        /**
         * 获取
         *
         * @return url
         */
        public String getUrl() {
            return url;
        }

        /**
         * 设置
         *
         * @param url url
         */
        public void setUrl(String url) {
            this.url = url;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return remark
         */
        public String getRemark() {
            return remark;
        }

        /**
         * 设置
         *
         * @param remark remark
         */
        public void setRemark(String remark) {
            this.remark = remark;
        }

        /**
         * 获取
         *
         * @return followers_url
         */
        public String getFollowers_url() {
            return followers_url;
        }

        /**
         * 设置
         *
         * @param followers_url followers_url
         */
        public void setFollowers_url(String followers_url) {
            this.followers_url = followers_url;
        }

        /**
         * 获取
         *
         * @return following_url
         */
        public String getFollowing_url() {
            return following_url;
        }

        /**
         * 设置
         *
         * @param following_url following_url
         */
        public void setFollowing_url(String following_url) {
            this.following_url = following_url;
        }

        /**
         * 获取
         *
         * @return gists_url
         */
        public String getGists_url() {
            return gists_url;
        }

        /**
         * 设置
         *
         * @param gists_url gists_url
         */
        public void setGists_url(String gists_url) {
            this.gists_url = gists_url;
        }

        /**
         * 获取
         *
         * @return starred_url
         */
        public String getStarred_url() {
            return starred_url;
        }

        /**
         * 设置
         *
         * @param starred_url starred_url
         */
        public void setStarred_url(String starred_url) {
            this.starred_url = starred_url;
        }

        /**
         * 获取
         *
         * @return subscriptions_url
         */
        public String getSubscriptions_url() {
            return subscriptions_url;
        }

        /**
         * 设置
         *
         * @param subscriptions_url subscriptions_url
         */
        public void setSubscriptions_url(String subscriptions_url) {
            this.subscriptions_url = subscriptions_url;
        }

        /**
         * 获取
         *
         * @return organizations_url
         */
        public String getOrganizations_url() {
            return organizations_url;
        }

        /**
         * 设置
         *
         * @param organizations_url organizations_url
         */
        public void setOrganizations_url(String organizations_url) {
            this.organizations_url = organizations_url;
        }

        /**
         * 获取
         *
         * @return repos_url
         */
        public String getRepos_url() {
            return repos_url;
        }

        /**
         * 设置
         *
         * @param repos_url repos_url
         */
        public void setRepos_url(String repos_url) {
            this.repos_url = repos_url;
        }

        /**
         * 获取
         *
         * @return events_url
         */
        public String getEvents_url() {
            return events_url;
        }

        /**
         * 设置
         *
         * @param events_url events_url
         */
        public void setEvents_url(String events_url) {
            this.events_url = events_url;
        }

        /**
         * 获取
         *
         * @return received_events_url
         */
        public String getReceived_events_url() {
            return received_events_url;
        }

        /**
         * 设置
         *
         * @param received_events_url received_events_url
         */
        public void setReceived_events_url(String received_events_url) {
            this.received_events_url = received_events_url;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type type
         */
        public void setType(String type) {
            this.type = type;
        }

        @NotNull
        public String toString() {
            return "Owner{id = " + id + ", login = " + login + ", name = " + name + ", avatar_url = " + avatar_url + ", url = " + url + ", html_url = " + html_url + ", remark = " + remark + ", followers_url = " + followers_url + ", following_url = " + following_url + ", gists_url = " + gists_url + ", starred_url = " + starred_url + ", subscriptions_url = " + subscriptions_url + ", organizations_url = " + organizations_url + ", repos_url = " + repos_url + ", events_url = " + events_url + ", received_events_url = " + received_events_url + ", type = " + type + "}";
        }
    }

    public static class Assigner {
        private int id;
        private String login;
        private String name;
        private String avatar_url;
        private String url;
        private String html_url;
        private String remark;
        private String followers_url;
        private String following_url;
        private String gists_url;
        private String starred_url;
        private String subscriptions_url;
        private String organizations_url;
        private String repos_url;
        private String events_url;
        private String received_events_url;
        private String type;

        public Assigner() {
        }

        public Assigner(int id, String login, String name, String avatar_url, String url, String html_url, String remark, String followers_url, String following_url, String gists_url, String starred_url, String subscriptions_url, String organizations_url, String repos_url, String events_url, String received_events_url, String type) {
            this.id = id;
            this.login = login;
            this.name = name;
            this.avatar_url = avatar_url;
            this.url = url;
            this.html_url = html_url;
            this.remark = remark;
            this.followers_url = followers_url;
            this.following_url = following_url;
            this.gists_url = gists_url;
            this.starred_url = starred_url;
            this.subscriptions_url = subscriptions_url;
            this.organizations_url = organizations_url;
            this.repos_url = repos_url;
            this.events_url = events_url;
            this.received_events_url = received_events_url;
            this.type = type;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return login
         */
        public String getLogin() {
            return login;
        }

        /**
         * 设置
         *
         * @param login login
         */
        public void setLogin(String login) {
            this.login = login;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return avatar_url
         */
        public String getAvatar_url() {
            return avatar_url;
        }

        /**
         * 设置
         *
         * @param avatar_url avatar_url
         */
        public void setAvatar_url(String avatar_url) {
            this.avatar_url = avatar_url;
        }

        /**
         * 获取
         *
         * @return url
         */
        public String getUrl() {
            return url;
        }

        /**
         * 设置
         *
         * @param url url
         */
        public void setUrl(String url) {
            this.url = url;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return remark
         */
        public String getRemark() {
            return remark;
        }

        /**
         * 设置
         *
         * @param remark remark
         */
        public void setRemark(String remark) {
            this.remark = remark;
        }

        /**
         * 获取
         *
         * @return followers_url
         */
        public String getFollowers_url() {
            return followers_url;
        }

        /**
         * 设置
         *
         * @param followers_url followers_url
         */
        public void setFollowers_url(String followers_url) {
            this.followers_url = followers_url;
        }

        /**
         * 获取
         *
         * @return following_url
         */
        public String getFollowing_url() {
            return following_url;
        }

        /**
         * 设置
         *
         * @param following_url following_url
         */
        public void setFollowing_url(String following_url) {
            this.following_url = following_url;
        }

        /**
         * 获取
         *
         * @return gists_url
         */
        public String getGists_url() {
            return gists_url;
        }

        /**
         * 设置
         *
         * @param gists_url gists_url
         */
        public void setGists_url(String gists_url) {
            this.gists_url = gists_url;
        }

        /**
         * 获取
         *
         * @return starred_url
         */
        public String getStarred_url() {
            return starred_url;
        }

        /**
         * 设置
         *
         * @param starred_url starred_url
         */
        public void setStarred_url(String starred_url) {
            this.starred_url = starred_url;
        }

        /**
         * 获取
         *
         * @return subscriptions_url
         */
        public String getSubscriptions_url() {
            return subscriptions_url;
        }

        /**
         * 设置
         *
         * @param subscriptions_url subscriptions_url
         */
        public void setSubscriptions_url(String subscriptions_url) {
            this.subscriptions_url = subscriptions_url;
        }

        /**
         * 获取
         *
         * @return organizations_url
         */
        public String getOrganizations_url() {
            return organizations_url;
        }

        /**
         * 设置
         *
         * @param organizations_url organizations_url
         */
        public void setOrganizations_url(String organizations_url) {
            this.organizations_url = organizations_url;
        }

        /**
         * 获取
         *
         * @return repos_url
         */
        public String getRepos_url() {
            return repos_url;
        }

        /**
         * 设置
         *
         * @param repos_url repos_url
         */
        public void setRepos_url(String repos_url) {
            this.repos_url = repos_url;
        }

        /**
         * 获取
         *
         * @return events_url
         */
        public String getEvents_url() {
            return events_url;
        }

        /**
         * 设置
         *
         * @param events_url events_url
         */
        public void setEvents_url(String events_url) {
            this.events_url = events_url;
        }

        /**
         * 获取
         *
         * @return received_events_url
         */
        public String getReceived_events_url() {
            return received_events_url;
        }

        /**
         * 设置
         *
         * @param received_events_url received_events_url
         */
        public void setReceived_events_url(String received_events_url) {
            this.received_events_url = received_events_url;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type type
         */
        public void setType(String type) {
            this.type = type;
        }

        @NotNull
        public String toString() {
            return "Assigner{id = " + id + ", login = " + login + ", name = " + name + ", avatar_url = " + avatar_url + ", url = " + url + ", html_url = " + html_url + ", remark = " + remark + ", followers_url = " + followers_url + ", following_url = " + following_url + ", gists_url = " + gists_url + ", starred_url = " + starred_url + ", subscriptions_url = " + subscriptions_url + ", organizations_url = " + organizations_url + ", repos_url = " + repos_url + ", events_url = " + events_url + ", received_events_url = " + received_events_url + ", type = " + type + "}";
        }
    }

    public static class License {
        /*
         "license": {
                "key": "gpl-2.0",
                "name": "GNU General Public License v2.0",
                "spdx_id": "GPL-2.0",
                "url": "https://api.github.com/licenses/gpl-2.0",
                "node_id": "MDc6TGljZW5zZTg="
            }
         */
        private String key;
        private String name;
        private String spdx_id;
        private String url;
        private String node_id;



        public License(String key, String name, String spdx_id, String url, String node_id) {
            this.key = key;
            this.name = name;
            this.spdx_id = spdx_id;
            this.url = url;
            this.node_id = node_id;
        }

        public License() {

        }

        public String getKey() {
            return key;
        }

        public void setKey(String key) {
            this.key = key;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getSpdx_id() {
            return spdx_id;
        }

        public void setSpdx_id(String spdx_id) {
            this.spdx_id = spdx_id;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public String getNode_id() {
            return node_id;
        }

        public void setNode_id(String node_id) {
            this.node_id = node_id;
        }

        @NotNull
        public String toString() {
            return "license:{\n" +
                    "key='" + key + '\'' + ",\n" +
                    "name='" + name + '\'' + ",\n" +
                    "spdx_id='" + spdx_id + '\'' + ",\n" +
                    "url='" + url + '\'' + ",\n" +
                    "node_id='" + node_id + '\'' + "\n" +
                    '}';
        }
    }

    public static class Parent {

    }

    public static class Paas {

    }

    public static class Assignee {
        private int id;
        private String login;
        private String name;
        private String avatar_url;
        private String url;
        private String html_url;
        private String remark;
        private String followers_url;
        private String following_url;
        private String gists_url;
        private String starred_url;
        private String subscriptions_url;
        private String organizations_url;
        private String repos_url;
        private String events_url;
        private String received_events_url;
        private String type;

        public Assignee() {
        }

        public Assignee(int id, String login, String name, String avatar_url, String url, String html_url, String remark, String followers_url, String following_url, String gists_url, String starred_url, String subscriptions_url, String organizations_url, String repos_url, String events_url, String received_events_url, String type) {
            this.id = id;
            this.login = login;
            this.name = name;
            this.avatar_url = avatar_url;
            this.url = url;
            this.html_url = html_url;
            this.remark = remark;
            this.followers_url = followers_url;
            this.following_url = following_url;
            this.gists_url = gists_url;
            this.starred_url = starred_url;
            this.subscriptions_url = subscriptions_url;
            this.organizations_url = organizations_url;
            this.repos_url = repos_url;
            this.events_url = events_url;
            this.received_events_url = received_events_url;
            this.type = type;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return login login
         */
        public String getLogin() {
            return login;
        }

        /**
         * 设置
         *
         * @param login login
         */
        public void setLogin(String login) {
            this.login = login;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return avatar_url
         */
        public String getAvatar_url() {
            return avatar_url;
        }

        /**
         * 设置
         *
         * @param avatar_url avatar_url
         */
        public void setAvatar_url(String avatar_url) {
            this.avatar_url = avatar_url;
        }

        /**
         * 获取
         *
         * @return url
         */
        public String getUrl() {
            return url;
        }

        /**
         * 设置
         *
         * @param url url
         */
        public void setUrl(String url) {
            this.url = url;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return remark
         */
        public String getRemark() {
            return remark;
        }

        /**
         * 设置
         *
         * @param remark remark
         */
        public void setRemark(String remark) {
            this.remark = remark;
        }

        /**
         * 获取
         *
         * @return followers_url
         */
        public String getFollowers_url() {
            return followers_url;
        }

        /**
         * 设置
         *
         * @param followers_url followers_url
         */
        public void setFollowers_url(String followers_url) {
            this.followers_url = followers_url;
        }

        /**
         * 获取
         *
         * @return following_url
         */
        public String getFollowing_url() {
            return following_url;
        }

        /**
         * 设置
         *
         * @param following_url following_url
         */
        public void setFollowing_url(String following_url) {
            this.following_url = following_url;
        }

        /**
         * 获取
         *
         * @return gists_url
         */
        public String getGists_url() {
            return gists_url;
        }

        /**
         * 设置
         *
         * @param gists_url gists_url
         */
        public void setGists_url(String gists_url) {
            this.gists_url = gists_url;
        }

        /**
         * 获取
         *
         * @return starred_url
         */
        public String getStarred_url() {
            return starred_url;
        }

        /**
         * 设置
         *
         * @param starred_url starred_url
         */
        public void setStarred_url(String starred_url) {
            this.starred_url = starred_url;
        }

        /**
         * 获取
         *
         * @return subscriptions_url
         */
        public String getSubscriptions_url() {
            return subscriptions_url;
        }

        /**
         * 设置
         *
         * @param subscriptions_url subscriptions_url
         */
        public void setSubscriptions_url(String subscriptions_url) {
            this.subscriptions_url = subscriptions_url;
        }

        /**
         * 获取
         *
         * @return organizations_url
         */
        public String getOrganizations_url() {
            return organizations_url;
        }

        /**
         * 设置
         *
         * @param organizations_url organizations_url
         */
        public void setOrganizations_url(String organizations_url) {
            this.organizations_url = organizations_url;
        }

        /**
         * 获取
         *
         * @return repos_url
         */
        public String getRepos_url() {
            return repos_url;
        }

        /**
         * 设置
         *
         * @param repos_url repos_url
         */
        public void setRepos_url(String repos_url) {
            this.repos_url = repos_url;
        }

        /**
         * 获取
         *
         * @return events_url
         */
        public String getEvents_url() {
            return events_url;
        }

        /**
         * 设置
         *
         * @param events_url events_url
         */
        public void setEvents_url(String events_url) {
            this.events_url = events_url;
        }

        /**
         * 获取
         *
         * @return received_events_url
         */
        public String getReceived_events_url() {
            return received_events_url;
        }

        /**
         * 设置
         *
         * @param received_events_url received_events_url
         */
        public void setReceived_events_url(String received_events_url) {
            this.received_events_url = received_events_url;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type type
         */
        public void setType(String type) {
            this.type = type;
        }

        public String toString() {
            return "Assignee{id = " + id + ", login = " + login + ", name = " + name + ", avatar_url = " + avatar_url + ", url = " + url + ", html_url = " + html_url + ", remark = " + remark + ", followers_url = " + followers_url + ", following_url = " + following_url + ", gists_url = " + gists_url + ", starred_url = " + starred_url + ", subscriptions_url = " + subscriptions_url + ", organizations_url = " + organizations_url + ", repos_url = " + repos_url + ", events_url = " + events_url + ", received_events_url = " + received_events_url + ", type = " + type + "}";
        }
    }

    public static class Tester {
        private int id;
        private String login;
        private String name;
        private String avatar_url;
        private String url;
        private String html_url;
        private String remark;
        private String followers_url;
        private String following_url;
        private String gists_url;
        private String starred_url;
        private String subscriptions_url;
        private String organizations_url;
        private String repos_url;
        private String events_url;
        private String received_events_url;
        private String type;

        public Tester() {
        }

        public Tester(int id, String login, String name, String avatar_url, String url, String html_url, String remark, String followers_url, String following_url, String gists_url, String starred_url, String subscriptions_url, String organizations_url, String repos_url, String events_url, String received_events_url, String type) {
            this.id = id;
            this.login = login;
            this.name = name;
            this.avatar_url = avatar_url;
            this.url = url;
            this.html_url = html_url;
            this.remark = remark;
            this.followers_url = followers_url;
            this.following_url = following_url;
            this.gists_url = gists_url;
            this.starred_url = starred_url;
            this.subscriptions_url = subscriptions_url;
            this.organizations_url = organizations_url;
            this.repos_url = repos_url;
            this.events_url = events_url;
            this.received_events_url = received_events_url;
            this.type = type;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return login
         */
        public String getLogin() {
            return login;
        }

        /**
         * 设置
         *
         * @param login login
         */
        public void setLogin(String login) {
            this.login = login;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return avatar_url
         */
        public String getAvatar_url() {
            return avatar_url;
        }

        /**
         * 设置
         *
         * @param avatar_url avatar_url
         */
        public void setAvatar_url(String avatar_url) {
            this.avatar_url = avatar_url;
        }

        /**
         * 获取
         *
         * @return url
         */
        public String getUrl() {
            return url;
        }

        /**
         * 设置
         *
         * @param url url
         */
        public void setUrl(String url) {
            this.url = url;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return remark
         */
        public String getRemark() {
            return remark;
        }

        /**
         * 设置
         *
         * @param remark remark
         */
        public void setRemark(String remark) {
            this.remark = remark;
        }

        /**
         * 获取
         *
         * @return followers_url
         */
        public String getFollowers_url() {
            return followers_url;
        }

        /**
         * 设置
         *
         * @param followers_url followers_url
         */
        public void setFollowers_url(String followers_url) {
            this.followers_url = followers_url;
        }

        /**
         * 获取
         *
         * @return following_url
         */
        public String getFollowing_url() {
            return following_url;
        }

        /**
         * 设置
         *
         * @param following_url following_url
         */
        public void setFollowing_url(String following_url) {
            this.following_url = following_url;
        }

        /**
         * 获取
         *
         * @return gists_url
         */
        public String getGists_url() {
            return gists_url;
        }

        /**
         * 设置
         *
         * @param gists_url gists_url
         */
        public void setGists_url(String gists_url) {
            this.gists_url = gists_url;
        }

        /**
         * 获取
         *
         * @return starred_url
         */
        public String getStarred_url() {
            return starred_url;
        }

        /**
         * 设置
         *
         * @param starred_url starred_url
         */
        public void setStarred_url(String starred_url) {
            this.starred_url = starred_url;
        }

        /**
         * 获取
         *
         * @return subscriptions_url
         */
        public String getSubscriptions_url() {
            return subscriptions_url;
        }

        /**
         * 设置
         *
         * @param subscriptions_url subscriptions_url
         */
        public void setSubscriptions_url(String subscriptions_url) {
            this.subscriptions_url = subscriptions_url;
        }

        /**
         * 获取
         *
         * @return organizations_url
         */
        public String getOrganizations_url() {
            return organizations_url;
        }

        /**
         * 设置
         *
         * @param organizations_url organizations_url
         */
        public void setOrganizations_url(String organizations_url) {
            this.organizations_url = organizations_url;
        }

        /**
         * 获取
         *
         * @return repos_url
         */
        public String getRepos_url() {
            return repos_url;
        }

        /**
         * 设置
         *
         * @param repos_url repos_url
         */
        public void setRepos_url(String repos_url) {
            this.repos_url = repos_url;
        }

        /**
         * 获取
         *
         * @return events_url
         */
        public String getEvents_url() {
            return events_url;
        }

        /**
         * 设置
         *
         * @param events_url events_url
         */
        public void setEvents_url(String events_url) {
            this.events_url = events_url;
        }

        /**
         * 获取
         *
         * @return received_events_url
         */
        public String getReceived_events_url() {
            return received_events_url;
        }

        /**
         * 设置
         *
         * @param received_events_url received_events_url
         */
        public void setReceived_events_url(String received_events_url) {
            this.received_events_url = received_events_url;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type
         */
        public void setType(String type) {
            this.type = type;
        }

        public String toString() {
            return "Tester{id = " + id + ", login = " + login + ", name = " + name + ", avatar_url = " + avatar_url + ", url = " + url + ", html_url = " + html_url + ", remark = " + remark + ", followers_url = " + followers_url + ", following_url = " + following_url + ", gists_url = " + gists_url + ", starred_url = " + starred_url + ", subscriptions_url = " + subscriptions_url + ", organizations_url = " + organizations_url + ", repos_url = " + repos_url + ", events_url = " + events_url + ", received_events_url = " + received_events_url + ", type = " + type + "}";
        }
    }

    public static class Permission {
        private boolean pull;
        private boolean push;
        private boolean admin;

        public Permission() {
        }

        public Permission(boolean pull, boolean push, boolean admin) {
            this.pull = pull;
            this.push = push;
            this.admin = admin;
        }

        /**
         * 获取
         *
         * @return pull
         */
        public boolean isPull() {
            return pull;
        }

        /**
         * 设置
         *
         * @param pull pull
         */
        public void setPull(boolean pull) {
            this.pull = pull;
        }

        /**
         * 获取
         *
         * @return push
         */
        public boolean isPush() {
            return push;
        }

        /**
         * 设置
         *
         * @param push push
         */
        public void setPush(boolean push) {
            this.push = push;
        }

        /**
         * 获取
         *
         * @return admin
         */
        public boolean isAdmin() {
            return admin;
        }

        /**
         * 设置
         *
         * @param admin admin
         */
        public void setAdmin(boolean admin) {
            this.admin = admin;
        }

        public String toString() {
            return "Permission{pull = " + pull + ", push = " + push + ", admin = " + admin + "}";
        }
    }

    public static class Program {

    }

    public static class Enterprise {
        private int id;
        private String type;
        private String name;
        private String path;
        private String html_url;

        public Enterprise() {
        }

        public Enterprise(int id, String type, String name, String path, String html_url) {
            this.id = id;
            this.type = type;
            this.name = name;
            this.path = path;
            this.html_url = html_url;
        }

        /**
         * 获取
         *
         * @return id
         */
        public int getId() {
            return id;
        }

        /**
         * 设置
         *
         * @param id id
         */
        public void setId(int id) {
            this.id = id;
        }

        /**
         * 获取
         *
         * @return type
         */
        public String getType() {
            return type;
        }

        /**
         * 设置
         *
         * @param type type
         */
        public void setType(String type) {
            this.type = type;
        }

        /**
         * 获取
         *
         * @return name
         */
        public String getName() {
            return name;
        }

        /**
         * 设置
         *
         * @param name name
         */
        public void setName(String name) {
            this.name = name;
        }

        /**
         * 获取
         *
         * @return path
         */
        public String getPath() {
            return path;
        }

        /**
         * 设置
         *
         * @param path path
         */
        public void setPath(String path) {
            this.path = path;
        }

        /**
         * 获取
         *
         * @return html_url
         */
        public String getHtml_url() {
            return html_url;
        }

        /**
         * 设置
         *
         * @param html_url html_url
         */
        public void setHtml_url(String html_url) {
            this.html_url = html_url;
        }

        public String toString() {
            return "Enterprise{id = " + id + ", type = " + type + ", name = " + name + ", path = " + path + ", html_url = " + html_url + "}";
        }
    }

    public static class ProjectLabel {

    }


}
